System and method for testing a surface

ABSTRACT

Systems and methods for testing a surface are described. An apparatus can be configured to consistently strike a ball to maintain consistent testing conditions. One or more parameters may be determined based on a path of travel of the ball.

CROSS-REFERENCE TO RELATED APPLICATIONS

This Application claims the benefit of U.S. Application No. 62/899,572filed Sep. 12, 2019, and U.S. Application No. 62/970,068 filed Feb. 4,2020, both of which are hereby incorporated by reference in theirentirety.

BACKGROUND

Determining how a field plays is a complex, multifaceted endeavor.Surface properties, as well as player/surface and ball/surfaceinteractions ultimately define how a field “plays.” Sports turfplayability is also determined by the type of sport played on the turf.Fields for baseball, football, soccer, lacrosse, golf, polo, tennis, andfield hockey to mention a few, all have different playabilityexpectations and parameters, to accommodate for the game. In the case ofbaseball, one of the defining playability factors is the baseball bounceand pace. Players qualify a field as “true” if the bounce is consistentand acceptable. They also qualify a field as “fast” or “slow”, based onthe ball speed before and after a bounce. These are game-affectingmetrics, as players adjust their style of play to fit a certain type offield. There is a need for systems and methods for assessing surfaceplayability.

SUMMARY

It is to be understood that both the following general description andthe following detailed description are exemplary and explanatory onlyand are not restrictive. Provided are methods and systems for testing asurface.

It is to be understood that both the following general description andthe following detailed description are exemplary and explanatory onlyand are not restrictive. Methods, systems, and apparatuses are disclosedfor receiving video data, the video data comprising video of an objectcontacting a surface, determining, based on the video data, one or morecharacteristics associated with the object, and determining, based onthe one or more characteristics of the object, one or morecharacteristics of the contact between the object and the surface.

An apparatus can comprise a frame comprising a plurality of railsections. A first rail section of the plurality of rail sectionscomprises one or more cavities configured to receive a rod that extendsthrough the first rail section. The apparatus can also comprise arotatable member coupled to a second rail section of the plurality ofrail sections and a third rail section of the plurality of railsections. The rotatable member can be configured to couple a ballstriking device to the frame such that the ball striking device is freeto rotate around the rotatable member in a single direction. The rodthat extends through the first rail section can be configured to keepthe ball striking device from moving around the rotatable member at afixed height based on which of the one or more cavities the rod extendsthrough.

A method can comprise striking a ball with a ball striking apparatus.The apparatus can comprise a frame comprising a plurality of railsections. A first rail section of the plurality of rail sectionscomprises one or more cavities configured to receive a rod that extendsthrough the first rail section. The apparatus can also comprise arotatable member coupled to a second rail section of the plurality ofrail sections and a third rail section of the plurality of railsections. The rotatable member can be configured to couple a ballstriking device to the frame such that the ball striking device is freeto rotate around the rotatable member in a single direction. The rodthat extends through the first rail section can be configured to keepthe ball striking device from moving around the rotatable member at afixed height based on which of the one or more cavities the rod extendsthrough. The method can further comprise determining one or moreparameters that indicate a quality of a surface. The one or moreparameters may be determined based on a travel path of the ball. Themethod can also comprise storing the determined one or more parameters.

Additional advantages will be set forth in part in the description whichfollows or may be learned by practice. The advantages will be realizedand attained by means of the elements and combinations particularlypointed out in the appended claims.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of this specification, illustrate embodiments and together with thedescription, serve to explain the principles of the methods and systems:

FIG. 1 is a diagram of an example system device for testing a surface;

FIG. 2 is a diagram of an example system device for testing a surface;

FIG. 3 is an example device for testing a surface;

FIG. 4 is an example device for testing a surface;

FIG. 5 is a close up diagram of a clamp member of an example device fortesting a surface;

FIG. 6 is a close up diagram of a clamp member of an example device fortesting a surface;

FIG. 7 is a diagram of a frame member of an example device for testing asurface;

FIG. 8 is a diagram of a frame member of an example device for testing asurface;

FIG. 9 is a diagram of an example device for testing a surface;

FIG. 10 is a close up diagram of a ball launching member of an exampledevice for testing a surface;

FIG. 11 is a close up diagram of a ball launching member of an exampledevice for testing a surface;

FIG. 12 is a close up diagram of a ball launching member of an exampledevice for testing a surface;

FIG. 13 is a close up diagram of a ball launching member of an exampledevice for testing a surface;

FIG. 14 is a block diagram depicting a non-limiting example of a systemfor testing a surface;

FIG. 15 is a block diagram depicting a non-limiting example of a systemfor testing a surface;

FIGS. 16A-16C are visualizations of a score for testing a surface;

FIG. 17 is an example frame;

FIG. 18 is an example of the Coefficient of Restitution (COR);

FIGS. 19A-19C are example plots of an object bounce; and

FIG. 20 is a flowchart of an example method for testing a surface;

FIG. 21 is a flowchart of an example method for testing a surface;

FIG. 22 is a flowchart of an example method for testing a surface; and

FIG. 23 is a block diagram of an example computing device.

DETAILED DESCRIPTION

Before the present methods and systems are disclosed and described, itis to be understood that the methods and systems are not limited tospecific methods, specific components, or to particular implementations.It is also to be understood that the terminology used herein is for thepurpose of describing particular embodiments only and is not intended tobe limiting.

As used in the specification and the appended claims, the singular forms“a,” “an,” and “the” include plural referents unless the context clearlydictates otherwise. Ranges may be expressed herein as from “about” oneparticular value, and/or to “about” another particular value. When sucha range is expressed, another embodiment includes from the oneparticular value and/or to the other particular value. Similarly, whenvalues are expressed as approximations, by use of the antecedent“about,” it will be understood that the particular value forms anotherembodiment. It will be further understood that the endpoints of each ofthe ranges are significant both in relation to the other endpoint, andindependently of the other endpoint.

“Optional” or “optionally” means that the subsequently described eventor circumstance may or may not occur, and that the description includesinstances where said event or circumstance occurs and instances where itdoes not.

Throughout the description and claims of this specification, the word“comprise” and variations of the word, such as “comprising” and“comprises,” means “including but not limited to,” and is not intendedto exclude, for example, other components, integers or steps.“Exemplary” means “an example of” and is not intended to convey anindication of a preferred or ideal embodiment. “Such as” is not used ina restrictive sense, but for explanatory purposes.

Disclosed are components that can be used to perform the disclosedmethods and systems. These and other components are disclosed herein,and it is understood that when combinations, subsets, interactions,groups, etc. of these components are disclosed that while specificreference of each various individual and collective combinations andpermutation of these may not be explicitly disclosed, each isspecifically contemplated and described herein, for all methods andsystems. This applies to all aspects of this application including, butnot limited to, steps in disclosed methods. Thus, if there are a varietyof additional steps that can be performed it is understood that each ofthese additional steps can be performed with any specific embodiment orcombination of embodiments of the disclosed methods.

The present methods and systems may be understood more readily byreference to the following detailed description of preferred embodimentsand the examples included therein and to the Figures and their previousand following description.

As will be appreciated by one skilled in the art, the methods andsystems may take the form of an entirely hardware embodiment, anentirely software embodiment, or an embodiment combining software andhardware aspects. Furthermore, the methods and systems may take the formof a computer program product on a computer-readable storage mediumhaving computer-readable program instructions (e.g., computer software)embodied in the storage medium. More particularly, the present methodsand systems may take the form of web-implemented computer software. Anysuitable computer-readable storage medium may be utilized including harddisks, CD-ROMs, optical storage devices, or magnetic storage devices.

Embodiments of the methods and systems are described below withreference to block diagrams and flowchart illustrations of methods,systems, apparatuses and computer program products. It will beunderstood that each block of the block diagrams and flowchartillustrations, and combinations of blocks in the block diagrams andflowchart illustrations, respectively, can be implemented by computerprogram instructions. These computer program instructions may be loadedonto a general purpose computer, special purpose computer, or otherprogrammable data processing apparatus to produce a machine, such thatthe instructions which execute on the computer or other programmabledata processing apparatus create a means for implementing the functionsspecified in the flowchart block or blocks.

These computer program instructions may also be stored in acomputer-readable memory that can direct a computer or otherprogrammable data processing apparatus to function in a particularmanner, such that the instructions stored in the computer-readablememory produce an article of manufacture including computer-readableinstructions for implementing the function specified in the flowchartblock or blocks. The computer program instructions may also be loadedonto a computer or other programmable data processing apparatus to causea series of operational steps to be performed on the computer or otherprogrammable apparatus to produce a computer-implemented process suchthat the instructions that execute on the computer or other programmableapparatus provide steps for implementing the functions specified in theflowchart block or blocks.

Accordingly, blocks of the block diagrams and flowchart illustrationssupport combinations of means for performing the specified functions,combinations of steps for performing the specified functions and programinstruction means for performing the specified functions. It will alsobe understood that each block of the block diagrams and flowchartillustrations, and combinations of blocks in the block diagrams andflowchart illustrations, can be implemented by special purposehardware-based computer systems that perform the specified functions orsteps, or combinations of special purpose hardware and computerinstructions.

Note that in various instances this detailed disclosure may refer to agiven entity performing some action. It should be understood that thislanguage may in some cases mean that a system (e.g., a computer) ownedand/or controlled by the given entity is actually performing the action.

The present disclosure relates to an apparatus for determining a qualityof a surface. The apparatus is configured to allow for consistency oftesting a surface to determine one or more parameters for the surface.For example, the apparatus allows for a ball to be struck with aconsistent amount of force in a consistent direction so that an amountof force transferred to the ball is consistent across different tests.Additionally, the apparatus is portable such that the testing apparatuscan be used at a plurality of locations (e.g., different golf courses,different surfaces, etc.). Thus, the apparatus is configured to allowfor consistent testing of the one or more parameters across a variety ofsurfaces, as well as a variety of locations.

FIG. 1 is a block diagram depicting non-limiting examples of a system100 comprising a launcher device 110, a camera 140, and a computingdevice 150. The launcher device 110 may be configured to launch anobject 120 at a surface 130. The launcher device 110 may be configuredto propel an object (e.g., a ball) by any suitable means. In an example,the launcher device 110 may be configured to expel the ball from a tube,for instance, for instance by way of an applied air pressure or otherpropulsion mechanism. In an example, the launcher device 110 may beconfigured to propel the ball by mechanical means such as striking theball. The object 120 may be a ball. The object 120 may be a baseball, agolf ball, a soccer ball, a football, a basketball, or a tennis ball.The surface 130 may be a playing surface. The surface 130 may be aplaying surface. The surface 130 may be a baseball field, a golf course,a soccer field, a football field, a basketball court, polo grounds, acricket field, a tennis court, or the like. The camera 140 may beconfigured to record a video of the object 120 before, during, and afterthe object 120 interacts (e.g., contacts, bounces) with the surface 130.Video data generated by the camera 140 may be provided to the computingdevice 150 for analysis by an interaction engine 1501. The interactionengine 1501 may comprise the interaction engine 1401.

The launcher device 110 may be a cannon or other launch deviceconfigured to launch the object 120 in varying angles and at varyingspeeds. The launcher device 110 may be configured to launch the object120 by any means. For example, the launcher device 110 may be configuredto use air pressure or other propellant means (e.g., explosives) toexpel the object from a barrel with an angle and a velocity. Forexample, the launcher device may be configured to use mechanical means(e.g., striking, or use of elastic methods) to impart a force on theobject resulting in the object accelerating. The angle at which theobject 120 is launched may be controlled by tilting the barrel of thelauncher device 110 to the desired angle. The speed at which the object120 is launched may be controlled by a user interface such that theobject 120 may be launched at various speeds. The launcher device 110may thus mimic interactions between the object 120 and the surface 130that commonly occur during game play (e.g., dribble of a basketball,baseball striking the turf after being hit by a bat, and the like). Thelauncher device 110 may be configured to recreate conditions, such asspeed and trajectory, of the object 120 immediately before the object120 comes in contact (bounces) with the surface 130.

The launcher device 110 may comprise a main frame. The main frame may bemade of any suitable materials such as steel, aluminum, wood, plastic,or the like. Front uprights may be slotted so a cannon housing member ofthe frame can be positioned close to the ground for the lower line drivesurface contact method. The main frame may be configured to accommodatethe barrel (e.g., the barrel of a cannon). A pressurized cannon may beattached to the main frame. The cannon may comprise a CO2 cannon, whichmay comprise a CO2 controlled valve with a push button release, a cradlewhich secures the cannon, hosing and a regulator for pressureadjustments, and pneumatic casters on one side of the frame. Thelauncher device may be fixed to the ground or may be mobile. Forexample, the launcher device 110 may be flipped up on its side for easeof transporting. The launcher device 110 may be powered by a regulatedpsi to achieve the desired speed of the ball as it is shot out of thelauncher device 110. A correlation between pressure and speed may bedetermined to provide control over a speed at which the object 120 maybe launched. For example, the average baseball speed leaving a MajorLeague Baseball (MLB) player hit is approximately 110 miles per hour(MPH). The object launcher may be pressurized with CO2 at pressure persquare inch (PSI) ranging from 200-320 PSI. The launcher device 110 maybe used to launch the object 120 at varying PSIs and the resulting speedmeasured (e.g., by chronograph) in feet per second (FPS) and convertedto MPH.

The launcher device 110 may simulate the precise angle and speed of theobject 120 immediately before contact with the surface 130. Byregulating the pressure +/−, the speed of the object 120 can bedetermined. Increasing psi increases the speed of the object 120 whiledecreasing the psi decreases the speed. “Three points of contact” on theframe of the launcher device 110 may be used to position differentangles. In a baseball context, simulating a “bunt” will produce launchwith a very slow speed and high angle. By decreasing the psi andincreasing the angle, such as 45 degrees, the launcher device 110 cansimulate a bunt. This setting can also be used to simulate what happenswhen a “fly ball” drops into the outfield. The launcher device 110 mayalso simulate a “line drive” by increasing the psi and lowering theangle, such as 10 degrees, to simulate the conditions immediately beforethe baseball comes in contact with the baseball field.

The camera 140 may be any type of camera, including visible-lightcameras, infrared (IR) cameras, ultraviolet cameras or any other devices(or combination of devices) that are capable of capturing an image of anobject and representing that image in the form of digital data. Thecamera 140 may be configured to capture video images (e.g., successiveimage frames at a constant rate of at least 15 frames per second (fps)).The camera 140 may be configured to capture video images at frameratessuch as 120 fps and/or 240 fps. The particular capabilities of thecamera 140 may vary, based on application, as to frame rate, imageresolution (e.g., pixels per image), color or intensity resolution(e.g., number of bits of intensity data per pixel), focal length oflenses, depth of field, etc. In general, for a particular application,any cameras capable of focusing on objects within a spatial volume ofinterest can be used. For instance, to capture motion of the object 120,the volume of interest might be one or more meters. The camera 140 maybe oriented in any convenient manner. In the system 100, the camera 140is mounted so that a field of view of the camera 140 will include theobject 120 before, during, and after contact with the surface 130. Morethan one camera 140 may be used and may be arranged to provideoverlapping fields of view throughout the area where motion of theobject 120 is expected to occur. The camera 140 may provide capturedimage and/or video data to the computing device 150.

In operation, the launcher device 110 launches the object 120 at thesurface 130. The launcher device 110 can be operated using the objectlaunch module 1510 (as described in FIG. 15 ) of the interaction engine1501 or the launcher device 110 can be operated manually. The camera 140is operated to collect a sequence of images of the object 120. Theimages are timestamped. These images are provided to the computingdevice 150 and are then analyzed, e.g., using the interaction engine1501, to determine a position of the object 120 as it travels to thesurface 130, contacts the surface 130, travels away from the surface130, or a combination thereof. The camera 140 may be triggered toacquire images in conjunction with the firing of the launcher device110.

FIG. 2 is an example of a system 200 for testing a surface. The system200 may comprise a ball striking device 210, a camera 240, and acomputing device 250. The ball striking device 210 may be configured tolaunch a ball 220 at or across a surface 230. The ball 220 may be a golfball, a baseball, a soccer ball, a football, a basketball, a lacrosseball, a polo ball, a tennis ball, or the like. The surface 230 may be aplaying surface. The surface 230 may be a golf course, a baseball field,a soccer field, a football field, a basketball court, a tennis court, alacrosse field, polo grounds, cricket filed, or the like. The playingsurface 230 can comprise artificial turf configured to varyingparameters determining on the use of the artificial turf. The camera 240may be configured to record a video of the ball 220 before, during, andafter the ball 220 interacts (e.g., contacts, bounces, rolls across,etc.) with the surface 230. Video data generated by the camera 240 maybe provided to the computing device 250 for analysis by an interactionengine 1501.

The ball striking device 210 may be configured to recreate conditions,such as speed and trajectory, of the ball 220 immediately before theball 220 comes in contact (bounces) with the surface 230. For example,the ball striking device 210 can be configured to mimic a puttingstroke, a chip, a pitch, a full golf swing, and so forth.

The camera 240 may be any type of camera, including visible-lightcameras, infrared (IR) cameras, ultraviolet cameras or any other devices(or combination of devices) that are capable of capturing an image of aball and representing that image in the form of digital data. The camera240 may be configured to capture video images (e.g., successive imageframes at a constant rate of at least 2 frames per second (fps)). Thecamera 240 may be configured to capture video images at frame rates suchas 120 fps and/or 240 fps. The particular capabilities of the camera 240may vary, based on application, as to frame rate, image resolution(e.g., pixels per image), color or intensity resolution (e.g., number ofbits of intensity data per pixel), focal length of lenses, depth offield, etc. In general, for a particular application, any camerascapable of focusing on objects within a spatial volume of interest canbe used. For instance, to capture motion of the ball 220, the volume ofinterest might be one or more meters. The camera 240 may be oriented inany convenient manner. In the system 200, the camera 240 can be mountedso that a field of view of the camera 240 will include the ball 220before, during, and after contact with the surface 230. Additionally,the camera 240 can be mounted so that a field of view of the camera 240will include the ball 220 as the ball rolls across the surface 230. Morethan one camera 240 may be used and may be arranged to provideoverlapping fields of view throughout the area where motion of the ball220 is expected to occur. The camera 240 may provide captured imageand/or video data to the computing device 250.

FIG. 3 is a diagram of an example device 300 for testing a surface. Thedevice 300 comprises a frame with a plurality of rail sections. Theframe is configured to couple with the launching device, a clampingmember, or various other attachments as will be described in more detailbelow. As will be appreciated by one skilled in the art, the device 300is merely one example of a frame and there are a plurality of differentframe options that can be coupled with the clamping member describedbelow. Accordingly, the present disclosure should not be limited to theframe as shown in FIG. 3 .

FIG. 4 is a diagram of an example device 400 for testing a surface. Asshown, the device 400 can comprise the frame comprising a plurality ofrail sections. A first rail section of the plurality of rail sectionscan comprise one or more cavities configured to receive a rod thatextends through the first rail section.

The apparatus can also comprise a rotatable member coupled to a secondrail section of the plurality of rail sections and a third rail sectionof the plurality of rail sections. The rotatable member can beconfigured to couple a ball striking device to the frame such that theball striking device is free to rotate around the rotatable member in asingle direction. The ball striking device can comprise at least one ofa mallet, a golf club, a putter, a baton, a staff, a piston, or a ballstriking rod.

The rotatable member can further comprise a clamping member configuredto securely couple the ball striking device to the rotatable member. Theclamping member can be configured to clamp to a handle portion of theball striking device. The clamping member can be configured to notdamage the handle portion of the ball striking device when the clampingmember securely couples the ball striking device to the rotatablemember. Additionally, the clamping member can be configured to quicklydisengage (e.g., unclamp) the ball striking device such that the ballstriking device can be easily removed from the device 400.

The rod that extends through the first rail section can be configured tokeep the ball striking device from moving around the rotatable member ata fixed height based on which of the one or more cavities the rodextends through. For example, when the rod is removed from the one ormore cavities, the rotatable member is configured to rotate the ballstriking device in the single direction at a speed that is dictatedbased on which of the one or more cavities the rod extends through priorto removal. The ball striking device can be configured to strike a ballwhen the rod is removed to cause the ball to move in a path of travelaway from the ball striking device.

FIG. 5 is a close up diagram of a clamp member 500 of an example devicefor testing a surface. As shown, the clamping member 500 is configuredto securely couple the ball striking device to the rotatable member(e.g., a rod coupled between two rails of the frame). The clampingmember can be configured to clamp to a handle portion of the ballstriking device. The clamping member can be configured to not damage thehandle portion of the ball striking device when the clamping membersecurely couples the ball striking device to the rotatable member. Theclamping member can further comprise one or more counterweightsconfigured to counterbalance the ball striking device such that the ballstriking device is balanced at a point near where the clamping membercouples the ball striking device to the rotatable member. Additionally,the clamping member can be configured to quickly disengage (e.g.,unclamp) the ball striking device such that the ball striking device canbe easily removed from the device 200. For example, if the strikingdevice is a putter, the clamping member can be disengaged to remove theputter and to replace the putter with another striking device, such as agolf club (e.g., a wedge, an iron, a driver, etc.). Accordingly, theclamp member 500 may be configured to allow for interchangeabilitybetween a plurality of striking devices in an efficient manner.

FIG. 6 is a close up diagram of the clamp member 500 of an exampledevice for testing a surface. FIG. 6 comprises a different angle of theclamp member 500 of FIG. 5 . As shown, the clamp member comprises aplurality of counterweights. A first counterweight can be placed on topof the clamping member and a second counterweight can be placed on thebottom of the clamping member. While two counterweights are shown forease of explanation, a person of ordinary skill in the art wouldappreciate that the clamp member 500 may comprise any number ofcounterweights, including no counterweights, and that the counterweights can be located anywhere on the clamp member 500. Accordingly,the present disclosure should not be limited to the exemplary embodimentshown in FIG. 6 .

FIG. 7 is a diagram of a frame member 700 of an example device fortesting a surface. As shown, the frame member 700 comprises a pluralityof cavities (e.g., holes) configured to receive a rod (not shown). Therod is configured to extend through the plurality of cavities so as toengage with the ball striking device such that the ball striking deviceis held in place by the rod. When the rod is removed from the framemember 700, the ball striking device is configured to freely rotateabout the rotatable member. Specifically, the ball striking device isconfigured to utilize gravity to move towards a ball in order to strikethe ball in a direction of travel. Further, each of the plurality ofcavities has a respective height, which dictates a speed of travel ofthe ball striking device. For example, the further away from the base ofthe frame the cavity is located, the faster the ball striking devicetravels. Thus, the path of travel of the ball that the ball strikingdevice hits will be dictated based on which of the plurality of cavitiesthe rod is placed through to hold the ball striking device at apredetermined height.

The plurality of cavities allows for the ball striking device to behavein consistent manner. For example, because each of the heights ispredetermined for each of the cavities, the ball striking device willtravel at approximately a same rate of speed for each respective cavity.Stated differently, each of the plurality of cavities is associated witha respective speed of travel of the ball striking device. Accordingly,the plurality of cavities allows for consistency of testing regardlessof the surface being tested because the speed of the ball strikingdevice will be approximately the same when the ball striking device isreleased from the same cavity. Therefore, the plurality of cavitiesallows for consistency of testing the surface.

FIG. 8 is a diagram of a frame member 800 of an example device fortesting a surface. Specifically, FIG. 8 illustrates the frame member 800with the rod inserted within one of the plurality of cavities. As shown,the rod prevents the ball striking device from moving until the rod isremoved from the cavity. Additionally, FIG. 8 highlights the ability fora cavity to have a consistent speed of the ball striking member due tothe ball striking member being held at a same height. Furthermore, whilethe plurality of cavities are not visible in FIG. 8 , the plurality ofcavities are within the frame member 800. Thus, the ball striking devicecan be held as shown in FIG. 8 at any one of the plurality of cavitiesso that the speed of the ball striking device can be varied to testdifferent conditions of the surface.

While FIGS. 2-8 describe the device as operating via gravity, thedevices as described in FIGS. 2-8 can be operated by one or more powereddevices. The one or more powered devices can comprise one or more of amotor, a drive, a spring, a gearbox, a shaft coupled to the gear box,and so forth. For example, the rotatable member can be coupled to anelectric motor that forcibly rotates the rotatable member. The electricmotor can be configured to accelerate the striking device at aparticular speed. For example, the electric motor can be configured toaccelerate the striking device up to 100 MPH to replicate the swingspeed of a low handicap golfer. As another example, the electric motorcan be configured to replicate a 50% swing to test how the surfaceoperates and/or reacts to a variety of swings and/or shots that thesurface would experience if implemented on a championship caliber golfcourse. While the rotatable member is used for ease of explanation, aperson of ordinary skill in the art would appreciate that any portion ofthe devices as shown in FIGS. 2-8 can be coupled to one or more motorsto control the operation and/or movement of the said devices.

FIG. 9 is a diagram of an example device 900 for testing a surface. Theexample device 900 is similar to the devices described in FIGS. 2-8 ,but the example device 900 comprises a golf ball launching member. Asshown, the golf ball launching member extends over the top of the frameof the example device 900. The golf ball launching member is configuredto mimic the impact from a golf club, such as an iron, a wedge, adriver, etc. The golf ball launching member is configured to strike theball and cause the ball to launch off a platform. The platform can belocated on top of the frame, the bottom of the frame, or any otherportion of the frame. The location of the platform dictates a height oftravel for the ball. For example, if the ball is launched from aplatform on top of the frame, the ball will travel farther, as comparedto a platform on the bottom of the frame.

FIG. 10 is a diagram of an example device 1000 for testing a surface. Asshown, the example device 1000 comprises the rotatable member coupled tothe ball striking device, as well as the ball launcher and a platformfor launching the ball. Specifically, the example device 1000 is acombination of the example device 400 and the example device 900 suchthat the example device 1000 comprises the capability to strike a ball,as well as launch a ball as described below.

FIG. 11 is a close up diagram of a ball launching member 1100 of anexample device for testing a surface. As shown, the ball launchingmember 1100 comprises a first end and a second end. The first end cancomprise a first angled end configured to launch the ball at a firstpredetermined launch angle, and the second end can comprise a secondangled end configured to launch the ball at a second predeterminedlaunch angle. The ball launching member can be configured to provide abackspin on a ball to mimic a stroke and/or a swing from a golf clubother than a putter. Thus, the ball launching member can be configuredto mimic a chip and/or a pitch so that the surface can be test todetermine how the surface reacts to the ball impacting the surface. Theball launching member can be configured to strike the ball on a platformor not on a platform (e.g., on the playing surface, or anotherlocation).

For example, the first angled end and the second angled end can beconfigured to be similar to an angle of a golf club. As an example, asand wedge can have a face angle of approximately 54 degrees and a lobwedge can have a face angle of approximately 60 degrees. The firstangled end can have a similar angle as the sand wedge, and the secondangled end can have a similar angle as the lob wedge. Thus, depending onwhether the first or second angled end is utilized (e.g., makes contactwith the ball), the path of travel of the ball will vary. As an example,the ball will have an increased distance of travel (e.g., away from theball launching member 1100), when the first angled end is used, whereaswhen the second angled end is used, the ball may have an increasedheight of travel (e.g., away from the bottom of the device).Accordingly, the ball launching member can be configured to mimic aswing and/or a stroke of a golf club other than a putter. While a sandwedge and a lob wedge were used for ease of explanation, a personskilled in the art would appreciate that the first and second angledends can comprise any angle, and should not be limited to theaforementioned example or even angles of a golf club.

The ball launching member can comprise a polymeric material and/orcoating on the first angled end or the second angled end. The polymericmaterial can be configured to increase the coefficient of frictionbetween the ball launching member and the golf ball. For example, if aprimary material of the ball launching member is metal, the polymericmaterial may be added to increase the friction between the ball and theball launching member because the metal of the ball launching member maynot have a sufficiently high coefficient of friction to launch the ball.The polymeric material can be any polymeric material.

FIG. 12 is a close up diagram of a ball launching member 1200 of anexample device for testing a surface. As shown, the ball launch member1200 is suspended over a platform. As shown in FIG. 12 , the platform islocated at a bottom of the frame, and the platform is holding a golfball. The launch member 1200, when released, can be configured to strikethe golf ball on the platform and to launch the golf ball in a path oftravel away from the launch member. The path of travel may include aheight (e.g., travel in the Z plane), as well as distance (e.g., travelin the X plane).

While FIGS. 8-12 describe the device as operating via gravity, thedevices as described in FIGS. 8-12 can be operated by one or morepowered devices. The one or more powered devices can comprise one ormore of a motor, a drive, a spring, a gearbox, a shaft coupled to thegear box, and so forth. For example, the ball launching member 1000 ofFIG. 10 can be coupled to an electric motor that accelerates ordecelerates the launching member to a particular speed. For example, theelectric motor can be configured to accelerate the ball launching memberup to 100 MPH to replicate the swing speed of a low handicap golfer. Asanother example, the electric motor can be configured to replicate a 50%swing to test how the surface operates and/or reacts to a variety ofswings and/or shots that the surface would experience if implemented ona championship caliber golf course. While the rotatable member is usedfor ease of explanation, a person of ordinary skill in the art wouldappreciate that any portion of the devices as shown in FIGS. 8-12 can becoupled to one or more motors to control the operation and/or movementof the said devices.

FIG. 13 is a close up diagram of a ball launching member 1300 of anexample device for testing a surface. The ball launching member 1300 issimilar to the ball launching member 1100, except that the platform islocated at a top of the frame instead of the bottom. Accordingly, aheight of travel of a ball launched by the ball launching member 1300can be larger than the ball launching member 1100 because the balllaunching member 1300 is launching the ball from a location that ishigher than the ball launching member 1100.

FIG. 14 is a block diagram depicting a non-limiting example of thecomputing device 150 (or 250) and the camera 140 (or 240). In an aspect,some or all steps of any described method may be performed on acomputing device as described herein. The computing device 150 cancomprise one or multiple computers configured to store one or more of aninteraction engine 1501 and image data 1402, and to operate a userinterface 1403 (e.g., via a web browser) such as, for example, a mobilephone, a tablet computer, a laptop computer, or a desktop computer.Multiple other computing devices 1404 can connect to the computingdevice 150 through a network 1406 such as, for example, the Internet.

The computing device 150 can be a digital computer that, in terms ofhardware architecture, generally includes a processor 1407, memory 1408,input/output (I/O) interfaces 1409, network interfaces 1410, and camerainterfaces 1411. These components (1407, 1408, 1409, 1410, and 1411) arecommunicatively coupled via a local interface 1412. The local interface1412 can be, for example but not limited to, one or more buses or otherwired or wireless connections, as is known in the art. The localinterface 1412 can have additional elements, which are omitted forsimplicity, such as controllers, buffers (caches), drivers, repeaters,and receivers, to enable communications. Further, the local interfacemay include address, control, and/or data connections to enableappropriate communications among the aforementioned components.

The processor 1407 can be a hardware device for executing software,particularly that stored in memory 1408. The processor 1407 can be anycustom made or commercially available processor, a central processingunit (CPU), an auxiliary processor among several processors associatedwith the computing device 150, a semiconductor-based microprocessor (inthe form of a microchip or chip set), or generally any device forexecuting software instructions. When the computing device 150 is inoperation, the processor 1407 can be configured to execute softwarestored within the memory 1408, to communicate data to and from thememory 1408, and to generally control operations of the computing device150 pursuant to the software.

The I/O interfaces 1409 can be used to receive user input from and/orfor providing system output to one or more devices or components. Userinput can be provided via, for example, a keyboard and/or a mouse.System output can be provided via a display device and a printer (notshown). I/O interfaces 1409 can include, for example, a serial port, aparallel port, a Small Computer System Interface (SCSI), an IRinterface, an RF interface, and/or a universal serial bus (USB)interface.

The network interface 1410 can be used to transmit and receive from thecomputing device 150 on the network 1406. The network interface 1410 mayinclude, for example, a 10BaseT Ethernet Adaptor, a 100BaseT EthernetAdaptor, a LAN PHY Ethernet Adaptor, a Token Ring Adaptor, a wirelessnetwork adapter (e.g., Wi-Fi), or any other suitable network interfacedevice. The network interface 1410 may include address, control, and/ordata connections to enable appropriate communications on the network1406.

The camera interface 1411 can include hardware and/or software thatenables communication between the computing device 150 and the camera140. Thus, for example, the camera interface 1411 can include one ormore data ports to which the camera 140 can be connected, as well ashardware and/or software signal processors to modify data signalsreceived from the camera 140 (e.g., to reduce noise or reformat data)prior to providing the signals as inputs to the interaction engine 1401executing on the processor 1407. In some embodiments, the camerainterface 1411 can also transmit signals to the camera 140, e.g., toactivate or deactivate the cameras, to control camera settings (framerate, image quality, sensitivity, etc.), or the like. Such signals canbe transmitted, e.g., in response to control signals from the processor1407, which may in turn be generated in response to user input or otherdetected events.

The memory 1408 can include any one or combination of volatile memoryelements (e.g., random access memory (RAM, such as DRAM, SRAM, SDRAM,etc.)) and nonvolatile memory elements (e.g., ROM, hard drive, tape,CDROM, DVDROM, etc.). Moreover, the memory 1408 may incorporateelectronic, magnetic, optical, and/or other types of storage media. Notethat the memory 1408 can have a distributed architecture, where variouscomponents are situated remote from one another, but can be accessed bythe processor 1407.

The software in memory 1408 may include one or more software programs,each of which comprises an ordered listing of executable instructionsfor implementing logical functions. In the example of FIG. 14 , thesoftware in the memory 1408 of the computing device 150 can comprise theinteraction engine 1401 (or subcomponents thereof), the interface 1403,and a suitable operating system (O/S) 1413. The operating system 1413essentially controls the execution of other computer programs, such asthe interaction engine 1501 and/or the user interface 1403, and providesscheduling, input-output control, file and data management, memorymanagement, and communication control and related services. The memory1408 can also include other information used by the interaction engine1501; for example, the memory 1408 can store image data 1402. Theinteraction engine 1501 may include instructions for performing motioncapture analysis on images supplied from the camera 1540 connected tothe camera interface 1411.

FIG. 15 shows an embodiment where, the interaction engine 1501 (whichmay comprise the interaction action 1401) includes various modules, suchas an object launch module 1510, an image analysis module 1520, and aninteraction assessment module 1530. The object launch module 1510 may beconfigured to control one or more settings of the ball striking device1510, including angle and speed of launch, and launch initiation. Theimage analysis module 1520 can analyze images in the image data 1602,e.g., images captured via the camera interface 1611, to detect edges orother features of the ball 120.

For purposes of illustration, application programs and other executableprogram components such as the operating system 1413 are illustratedherein as discrete blocks, although it is recognized that such programsand components can reside at various times in different storagecomponents of the computing device 150. An implementation of theinteraction engine 1501 and/or the user interface 1603 can be stored onor transmitted across some form of computer readable media. Any of thedisclosed methods can be performed by computer readable instructionsembodied on non-transitory computer readable media. Computer readablemedia can be any available media that can be accessed by a computer. Byway of example and not meant to be limiting, computer readable media cancomprise “computer storage media” and “communications media.” “Computerstorage media” can comprise volatile and non-volatile, removable andnon-removable media implemented in any methods or technology for storageof information such as computer readable instructions, data structures,program modules, or other data. Exemplary computer storage media cancomprise RAM, ROM, EEPROM, flash memory or other memory technology,CD-ROM, digital versatile disks (DVD) or other optical storage, magneticcassettes, magnetic tape, magnetic disk storage or other magneticstorage devices, or any other medium which can be used to store thedesired information and which can be accessed by a computer.

In operation, the ball striking device 110 strikes the ball 120 towardsthe surface 130, away from the surface 130, or across the surface 130.The ball striking device 110 can be operated using the object launchmodule 110 of the interaction engine 1501 or the ball striking device110 can be operated manually. The camera 140 is operated to collect asequence of images of the ball 120. The images are timestamped. Theseimages are provided to the computing device 150 and are then analyzed,e.g., using the interaction engine 1501, to determine a position of theball 120 as it travels to the surface 130, contacts the surface 130,travels away from the surface 130, rolls across the surface 1530, or acombination thereof. The camera 140 may be triggered to acquire imagesin conjunction with the operation of the ball striking device 110.

FIGS. 16A-16C are visualizations of a score for testing a surface. FIG.16A is a graphical representation 1600 of a chart for mapping one ormore parameters of a surface. For example, the graphical representation1600 comprises a Putting Green Assessment Tool that can be utilized bythe United States Golf Association (USGA). The one or more parameterscan be determined based on the path of travel of the ball. For example,a speed of the ball, a distance traveled by the ball, any motion (e.g.,bounce) by the ball, and so forth can be determined based on the path oftravel of the ball.

The below chart indicates the expected values for a putting green, aswell as the details of what each test measures. As will be appreciatedby one skilled in the art, the below values are merely examples and thepresent disclosure should not be limited by the examples providedherein. Furthermore, the values may change based on further testing.

Expected Test Value Details of the Test Stimp 9.5-12  Measures in ft.the distance rolled by a ball released from a USGA standardized ramp.Trufirm 300-450 Measures the indentation (in thousandths of in.) of ahemisphere-shaped missile dropped from a standardized height. Bounce 6-9Measures in ft. the final distance of the ball launched with backspinfrom 2 ft. height. Spin  9-11 Measures in ft. the final distance of theball launched with backspin from ground level. Ball strike 3-5 Measuresthe number of skips within 5 linear ft. immediately after club/ballcontact for a 10 ft. putt. Aim 0-2 Measures the relative variationwithin a 10 ft. putt replicated 5 times. Consistency  0.1-0.25 Measuresthe overall variability within replicates and between tests as thecoefficient of variation.

FIG. 16B is a graphical representation 1625 of playability for anexample surface. The values of the various tests represented by thegraphical representation 1625 are listed in the chart below:

Expected Test Value Actual Stimp 9.5-12  10.23 Trufirm 300-450 298.6Bounce 6-9 7.49 Spin  9-11 10.58 Ball strike 3-5 5 Aim 0-2 1.44Consistency  0.1-0.25 0.22

FIG. 16C is a graphical representation 1650 of playability for anexample field. The values of the various tests represented by thegraphical representation 1625 are listed in the chart below:

Expected Test Value Details of the Test Stimp 9.5-12  10.65 Trufirm300-450 531.2 Bounce 6-9 9.52 Spin  9-11 10.84 Ball strike 3-5 1.8 Aim0-2 1.25 Consistency  0.1-0.25 0.31

Although the graphical representations in FIGS. 16A-16C are shown astwo-dimensional visualizations, it is understood that the score for agiven putting surface can be represented by any multidimensionalrepresentation.

FIG. 17 shows an example frame including overlays indicating apre-bounce area 1710, a post-bounce area 1720, and the ball 120. Theresulting images may replace the original images in the video. One ormore parameters may be specified to aid in object detection, forexample, a maximum area and a minimum area indicating how large the ball120 should appear in the video; a ceiling and a floor indicating amaximum and a minimum height that the ball 120 may appear in a frame; aleft bound and a right bound indicating the area here the downward andupward trajectories of the ball 120 may be found, and a scale which canbe used to convert coordinate differences into feet or meters. A scalecan be placed in the frame for a given experiment and scaling dataextracted therefrom. For example, an object of known length may beplaced in the field of view of the camera 140. Any resulting imagestaken that include the object of known length may be analyzed to convertdistances in the image (e.g., numbers of pixels) into physical distances(e.g., feet) according to the object of known length (e.g., extractscaling information). In another example, an indication of known lengthmay be made on the ball 120. In another example, a grid may be placed ina background area behind the field of view of the camera 140. The gridmay have lines separated by a known length. Any resulting images takenthat include the grid may be analyzed to convert distances in the image(e.g., numbers of pixels) into physical distances (e.g., feet) accordingto the grid (e.g., extract scaling information).

FIG. 18 shows an example of the principles of the Coefficient ofRestitution, as discussed herein. FIG. 19 shows a plot of a ball bounce.FIG. 19A shows the plot of the ball bounce with V₁ and V₂ identified. V₁is identified as 12.542 meters per second and V₂ is identified as 6.232meters per second. The values of V₁ and V₂ may then be used to determinethe COR. FIG. 19B shows a plurality of bounces of the same ball. Theball was bounced against a plurality of surfaces and the resultingbounces plotted. FIG. 19C visually shows the difference in ball bouncesacross the plurality of surfaces.

FIG. 20 shows an example method 2000. The method 2000 may comprise,receiving video data at 2010. The video data may comprise video of anobject contacting a surface. The video data may comprise a plurality offrames (e.g., images). The object can be one or more a golf ball, abaseball, a soccer ball, a football, a basketball, a lacrosse ball, afield hockey ball, a polo ball, a tennis ball, or the like. The surfacecan be a playing surface. The playing surface may be a golf course, abaseball field, a soccer field, a football field, a basketball court, atennis court, polo grounds, a lacrosse field, or the like. The method2000 may comprise determining, based on the video data, one or morecharacteristics associated with the object at 2020. The method 2000 maycomprise determining, based on the one or more characteristics of theobject, one or more characteristics of the contact between the objectand surface at 2030. The method 2000 may further comprise striking, viaa ball striking device, the ball recording, via a camera, the video ofthe ball contacting the surface, as well as the path of travel of theball. A point of contact of the ball with the surface can be centered ina frame.

Determining, based on the video data, the one or more characteristicsassociated with the object may comprise extracting the plurality offrames from the video data, determining an initial frame of theplurality of frames as a baseline frame, comparing an additional frameof the plurality of frames to the baseline frame, and determining, basedon the comparison, the one or more characteristics associated with theobject. Comparing the additional frame of the plurality of frames to thebaseline frame may comprise: a) determining a first position of theobject in the baseline frame; b) determining a second position of theobject in the additional frame; c) determining a difference in a heightaxis between the first position and the second position; and d)classifying, based on the difference in the height axis, the additionalframe as a pre-bounce frame or as a post-bounce frame. The method 2000can further comprise repeating b-d for a plurality of additional frames.Classifying, based on the difference in the height axis, the additionalframe as a pre-bounce frame or as a post-bounce frame can compriseclassifying the additional frame as a pre-bounce frame when thedifference in the height axis is negative. Classifying, based on thedifference in the height axis, the additional frame as a pre-bounceframe or as a post-bounce frame can comprise classifying the additionalframe as a post-bounce frame when the difference in the height axis ispositive.

The method 2000 can further comprise exporting a frame number associatedwith the additional frame, position coordinates of the object within theadditional frame, and a timestamp associated with the additional frame.The method 2000 can further comprise generating, based on the additionalframe and position coordinates of the object within the additionalframe, an annotated video. The one or more characteristics associatedwith the contact between the object and the surface can comprise abounce of the object, a pace of the object, or a spin of the object.

Determining, based on the video data, the bounce of the object cancomprise determining, based on the position coordinates and thetimestamp, a vertical coefficient of restitution (COR) associated withthe object. Determining, based on the video data, the pace of the objectcan comprise determining, based on the position coordinates and thetimestamp, a horizontal coefficient of restitution (COR) associated withthe object. Determining, based on the video data, the spin of the objectcan comprise determining, based on an identifying mark on the object, aspin direction and a spin speed.

The method 2000 can further comprise setting at least one of, a maximumarea for a position of the object within a frame, a minimum area for aposition of the object within a frame, a maximum height for a positionof the object within a frame, a minimum height for a position of theobject within a frame, a left bound for a position of the object withina frame, or a right bound for a position of the object within a frame.

FIG. 21 is a flowchart 2100 of an example method. At step 2110, a ballcan be struck with a striking apparatus. The striking apparatus can be aball striking apparatus as described herein. The ball striking apparatuscan comprise a frame comprising a plurality of rail sections. A firstrail section of the plurality of rail sections can comprise one or morecavities configured to receive a rod that extends through the first railsection. The apparatus can further comprise a rotatable member coupledto a second rail section of the plurality of rail sections and a thirdrail section of the plurality of rail sections. The rotatable member canbe configured to couple a ball striking device to the frame such thatthe ball striking device is free to rotate around the rotatable memberin a single direction. The rod that extends through the first railsection can configured to keep the ball striking device from movingaround the rotatable member at a fixed height based on which of the oneor more cavities the rod extends through. For example, when the rod isinserted through the first rail section, the rod keeps the ball strikingdevice at a fixed position. When the rod is removed from the first railsection, the ball striking device is free to fall (e.g., due to gravity)from the position that the ball striking device was at prior to removalof the rod. Thus, the ball striking device will swing in a downwardmotion towards a ball and strike the ball when the rod is removed.

At step 2120, one or more parameters that indicate a quality of asurface are determined. For example, the one or more parameters can bebased on a path of travel of the golf ball. The one or more parametersthat indicate the quality of the surface may be determined by acomputing device. The one or more may parameters indicate at least oneof a stimp of the surface, a bounce of the surface, a consistency of thesurface, an aim of the surface, a ball striking ability of the surface,a spin of the surface, or a firmness of the surface. The computingdevice can be coupled with a recording element configured to capture atleast one of still images or video of the ball when the ball is eitherlaunched by the ball launching member or struck by the ball strikingdevice. The recording element can capture the travel path of the ball.

At step 2130, the one or more parameters can be stored. For example, theone or more parameters can be stored in memory. As an example, the oneor more parameters can be stored in the memory 2304 and/or 2312 of thecomputing device 2301 of FIG. 23 . Additionally, the one or moreparameters can be utilized to generate a visual representation of thequality of the surface.

The flow chart of FIG. 22 illustrates an example process 2200 ofanalyzing a plurality of images (e.g., a video) in which the ball 120has been captured in flight. The process begins in step 2210, where theimage analysis module 1520 of the interaction engine 1501 may performinitial processing of the plurality of images. Initial processing mayinclude extracting the plurality of images as frames from a video.Initial processing may include the determination of one or more baselineimages from the plurality of images. That is, an image of the field ofview of the camera 140 immediately before the ball 120 is struck by theball striking device 110. The baseline image may be subtracted fromsubsequent images containing the ball 120 as the ball 120 travels alongits travel path. In this manner, background imagery is suppressed,bringing the imagery of interest (that of the ball 120 traveling) to theforeground.

After the initial processing of step 2210, the process 2200 proceeds tostep 2220, where areas within an image that are likely to be the ball120 are located. This step differentiates, at least to a first order,objects that are likely to be the ball 120, from other objects, such asa birds, trees, or a golf club. To locate candidate objects, the imageanalysis module 1520 may employ a process called “blob finding,” or blobdetection. In an example embodiment, blob detection may be performedusing the SimpleBlobDetector class in the OpenCV computer visionlibrary. SimpleBlobDetector uses an implementation of the Suzuki contourfinding algorithm to find contours and then groups the closed contoursinto “blobs.” Such contour finding is described, for example, in:Suzuki, S. and Abe, K., Topological Structural Analysis of DigitizedBinary Images by Border Following. CVGIP 30 1, pp 32-46 (1985). Theimage analysis module 1520 may locate smooth edges of the candidateobject and assign a score indicative of the candidate object's quality.A candidate object having a score above a threshold may be determined asan identified ball 120. In an embodiment, at least two successive imagesprior to the ball 120 contacting the surface 130 (pre-bounce) and atleast two successive images after the ball 120 contacts the surface 130(post-bounce) may be analyzed to identify the ball 120 in each image. Animage identifier for each image (e.g., a frame number) and the positionof the object in each image may be exported. In an embodiment,timestamps associated with each image may also be exported. In anembodiment, several successive images are taken as the ball 120 travelsacross the surface 130.

Optionally, at step 2230, the image analysis module 1520 may generate,or cause the generation of, an annotated video. The image analysismodule 1520 may overlay a shape, such as a square, over the area of eachimage that includes the ball 120. The image analysis module 1520 mayoverlay a shape, such as a square, over a pre-bounce area of each image(e.g., the area that the ball 120 passed through while falling towardthe surface) and a post-bounce area (e.g., the area that the ball 120passed through while bouncing away from the surface).

At step 2240, the interaction assessment module 1530 of the interactionengine 1501 may determine one or more characteristics of the ball 120.The interaction assessment module 1530 may determine one or more of ballbounce, ball pace, ball spin, ball travel, surface firmness, anyparameters associated with the surface, and the like.

The interaction assessment module 1530 may determine ball bounce usingthe physics principle for Coefficient of Restitution (COR) (FIG. 18 ).COR is the ratio of the vertical speed of the ball 120 after a bounce,V₂, (post-bounce or rebound speed) and before the bounce, V₂,(pre-bounce or incident speed). The vertical and horizontal COR may alsodepend on elastic properties of the surface 130. For example, if thesurface is rubber rather than concrete then the horizontal COR will belarger and the ball will spin faster after the ball bounces. The COR fora vertical bounce off a surface may be defined as the ratio of therebound speed to the incident speed. The COR for a horizontal bounce canbe defined for an oblique impact in terms of the horizontal componentsof the incident and rebound speeds of the contact point on the ball.Specifically, a vertical value (e_(y)) and a horizontal value (e_(x))can be defined as:

${e_{y} = \frac{v_{y^{2}}}{v_{y^{1}}}},$where the subscripts 1 and 2 denote conditions before and after thecollision, respectively, and where e_(y) is between 0 and 1(v_(y1) beingnegative). Similarly, e_(x) can be defined by the relation

$e_{x} = \frac{v_{x^{2}} - R_{\omega^{2}}}{v_{x^{1}} - R_{\omega^{1}}}$where v_(x)−R_(ω) is the net horizontal speed of a point at the bottomof the ball. Other techniques for determining COR are specificallycontemplated.

Analysis of the video and/or images may generate x and y coordinates atgiven time stamps. These x and y coordinates may be manipulated so as tomake the minimum value of the values y 0 (y0) and all other y values maybe manipulated to maintain the same distance and orientation to y0. Thex value of y0 to 0 as well (x0) and maintain all x value's orientationand distance to x0. This allows a bounce to be overlapped with otherbounces to compare similarity.

The interaction assessment module 1530 may determine ball pace usingCOR. Pace is measured as the COR for horizontal speeds. The videoanalysis yields horizontal speeds using a reference point, spatialposition of the ball frame by frame, and the recording settings (framesper second). Pace varies between 0 to 1. Zero would represent completedeadening and stop of the ball or object, and 1 would representidentical speeds before and after the bounce.

The interaction assessment module 1530 may determine ball spin which maybe measured based on how much grip the surface 1530 offers to the ball120. More grip results in a greater rotation of the ball 120, less gripresults in more “skipping” of the ball 120. Once the ball 120 is trackedby the video system, it should be possible to identify spin directionand speed using identifying marks on the ball. This is only possible inhigh frame rate video with low motion blur. Additionally, theinteraction assessment module 1530 can determine any of the parametersof the ball or the surface as discussed herein.

FIG. 23 is a block diagram of an example computing device. In anexemplary aspect, the methods and systems can be implemented on acomputer 2301 as illustrated in FIG. 23 and described below. Similarly,the methods and systems disclosed can utilize one or more computers toperform one or more functions in one or more locations. This exemplaryoperating environment is only an example of an operating environment andis not intended to suggest any limitation as to the scope of use orfunctionality of operating environment architecture. Neither should theoperating environment be interpreted as having any dependency orrequirement relating to any one or combination of components illustratedin the exemplary operating environment.

The present methods and systems can be operational with numerous othergeneral purpose or special purpose computing system environments orconfigurations. Examples of well-known computing systems, environments,and/or configurations that can be suitable for use with the systems andmethods comprise, but are not limited to, personal computers, servercomputers, laptop devices, and multiprocessor systems. Additionalexamples comprise set top boxes, programmable consumer electronics,network PCs, minicomputers, mainframe computers, distributed computingenvironments that comprise any of the above systems or devices, and thelike.

The processing of the disclosed methods and systems can be performed bysoftware components. The disclosed systems and methods can be describedin the general context of computer-executable instructions, such asprogram modules, being executed by one or more computers or otherdevices. Generally, program modules comprise computer code, routines,programs, objects, components, data structures, etc. that performparticular tasks or implement particular abstract data types. Thedisclosed methods can also be practiced in grid-based and distributedcomputing environments where tasks are performed by remote processingdevices that are linked through a communications network. In adistributed computing environment, program modules can be located inboth local and remote computer storage media including memory storagedevices.

Further, one skilled in the art will appreciate that the systems andmethods disclosed herein can be implemented via a general-purposecomputing device in the form of a computer 2301. The components of thecomputer 2301 can comprise, but are not limited to, one or moreprocessors 2303, a system memory 2312, and a system bus 2313 thatcouples various system components including the one or more processors2303 to the system memory 2312. The system can utilize parallelcomputing.

The system bus 2313 represents one or more of several possible types ofbus structures, including a memory bus or memory controller, aperipheral bus, an accelerated graphics port, or local bus using any ofa variety of bus architectures. By way of example, such architecturescan comprise an Industry Standard Architecture (ISA) bus, a MicroChannel Architecture (MCA) bus, an Enhanced ISA (EISA) bus, a VideoElectronics Standards Association (VESA) local bus, an AcceleratedGraphics Port (AGP) bus, and a Peripheral Component Interconnects (PCI),a PCI-Express bus, a Personal Computer Memory Card Industry Association(PCMCIA), Universal Serial Bus (USB) and the like. The bus 2313, and allbuses specified in this description can also be implemented over a wiredor wireless network connection and each of the subsystems, including theone or more processors 2303, a mass storage device 2304, an operatingsystem 2305, turf testing software 2306, turf testing data 2307, anetwork adapter 2308, the system memory 2312, an Input/Output Interface2310, a display adapter 2309, a display device 2311, and a human machineinterface 2302, can be contained within one or more remote computingdevices 2314 a,b,c at physically separate locations, connected throughbuses of this form, in effect implementing a fully distributed system.One of the one or more remote computing devices 2314 a,b,c may not be ata physically separate location. For example, the remote computing device2314 a may be a recording element coupled to the computing device 2301via the Input/Output Interface 2310. The recording element can be at asame location as the computing device 2301. The recording element can bea camera, a video camera, a microphone or any device capable ofcapturing audio or video. The recording element can be configured tocapture data related to a path of travel of a ball. The computing device2301 may determine one or more parameters based on the path of travel ofthe ball.

The computer 2301 typically comprises a variety of computer readablemedia. Exemplary readable media can be any available media that isaccessible by the computer 2301 and comprises, for example and not meantto be limiting, both volatile and non-volatile media, removable andnon-removable media. The system memory 2312 comprises computer readablemedia in the form of volatile memory, such as random access memory(RAM), and/or non-volatile memory, such as read only memory (ROM). Thesystem memory 2312 typically contains data such as the turf testing data2307 and/or program modules such as the operating system 2305 and theturf testing software 2306 that are immediately accessible to and/or arepresently operated on by the one or more processors 2303.

In another aspect, the computer 2301 can also comprise otherremovable/non-removable, volatile/non-volatile computer storage media.By way of example, FIG. 23 illustrates the mass storage device 2304which can provide non-volatile storage of computer code, computerreadable instructions, data structures, program modules, and other datafor the computer 2301. For example and not meant to be limiting, themass storage device 2304 can be a hard disk, a removable magnetic disk,a removable optical disk, magnetic cassettes or other magnetic storagedevices, flash memory cards, CD-ROM, digital versatile disks (DVD) orother optical storage, random access memories (RAM), read only memories(ROM), electrically erasable programmable read-only memory (EEPROM), andthe like.

Optionally, any number of program modules can be stored on the massstorage device 2304, including by way of example, the operating system2305 and the turf testing software 2306. Each of the operating system2305 and the turf testing software 2306 (or some combination thereof)can comprise elements of the programming and the turf testing software2306. The turf testing data 2307 can also be stored on the mass storagedevice 2304. The turf testing data 2307 can be stored in any of one ormore databases known in the art. Examples of such databases comprise,DB2®, Microsoft® Access, Microsoft® SQL Server, Oracle®, MySQL,PostgreSQL, and the like. The databases can be centralized ordistributed across multiple systems.

In another aspect, the user can enter commands and information into thecomputer 2301 via an input device (not shown). Examples of such inputdevices comprise, but are not limited to, a keyboard, pointing device(e.g., a “mouse”), a microphone, a joystick, a scanner, tactile inputdevices such as gloves, and other body coverings, and the like These andother input devices can be connected to the one or more processors 2303via the human machine interface 2302 that is coupled to the system bus2313, but can be connected by other interface and bus structures, suchas a parallel port, game port, an IEEE 1394 Port (also known as aFirewire port), a serial port, or a universal serial bus (USB).

In yet another aspect, the display device 2311 can also be connected tothe system bus 2313 via an interface, such as the display adapter 2309.It is contemplated that the computer 2301 can have more than one displayadapter 2309 and the computer 2301 can have more than one display device2311. For example, the display device 2311 can be a monitor, an LCD(Liquid Crystal Display), or a projector. In addition to the displaydevice 2311, other output peripheral devices can comprise componentssuch as speakers (not shown) and a printer (not shown) which can beconnected to the computer 2301 via the Input/Output Interface 2310. Anystep and/or result of the methods can be output in any form to an outputdevice. Such output can be any form of visual representation, including,but not limited to, textual, graphical, animation, audio, tactile, andthe like. The display device 2311 and computer 2301 can be part of onedevice, or separate devices.

The computer 2301 can operate in a networked environment using logicalconnections to one or more remote computing devices 2314 a,b,c. By wayof example, a remote computing device can be a personal computer,portable computer, smartphone, a server, a router, a network computer, apeer device or other common network node, and so on. Logical connectionsbetween the computer 2301 and a remote computing device 2314 a,b,c canbe made via a network 2315, such as a local area network (LAN) and/or ageneral wide area network (WAN). Such network connections can be throughthe network adapter 2308. The network adapter 2308 can be implemented inboth wired and wireless environments. Such networking environments areconventional and commonplace in dwellings, offices, enterprise-widecomputer networks, intranets, and the Internet.

For purposes of illustration, application programs and other executableprogram components such as the operating system 2305 are illustratedherein as discrete blocks, although it is recognized that such programsand components reside at various times in different storage componentsof the computing device 2301, and are executed by the one or moreprocessors 2303 of the computer. An implementation of the turf testingsoftware 2306 can be stored on or transmitted across some form ofcomputer readable media. Any of the disclosed methods can be performedby computer readable instructions embodied on computer readable media.Computer readable media can be any available media that can be accessedby a computer. By way of example and not meant to be limiting, computerreadable media can comprise “computer storage media” and “communicationsmedia.” “Computer storage media” comprise volatile and non-volatile,removable and non-removable media implemented in any methods ortechnology for storage of information such as computer readableinstructions, data structures, program modules, or other data. Exemplarycomputer storage media comprises, but is not limited to, RAM, ROM,EEPROM, flash memory or other memory technology, CD-ROM, digitalversatile disks (DVD) or other optical storage, magnetic cassettes,magnetic tape, magnetic disk storage or other magnetic storage devices,or any other medium which can be used to store the desired informationand which can be accessed by a computer.

The following examples are put forth so as to provide those of ordinaryskill in the art with a complete disclosure and description of how thecompounds, compositions, articles, devices and/or methods claimed hereinare made and evaluated, and are intended to be purely exemplary and arenot intended to limit the scope of the methods and systems. Efforts havebeen made to ensure accuracy with respect to numbers (e.g., amounts,temperature, etc.), but some errors and deviations should be accountedfor. Unless indicated otherwise, parts are parts by weight, temperatureis in ° C. or is at ambient temperature, and pressure is at or nearatmospheric.

The methods and systems can employ Artificial Intelligence techniquessuch as machine learning and iterative learning. Examples of suchtechniques include, but are not limited to, expert systems, case basedreasoning, Bayesian networks, behavior based AI, neural networks, fuzzysystems, evolutionary computation (e.g. genetic algorithms), swarmintelligence (e.g. ant algorithms), and hybrid intelligent systems (e.g.Expert inference rules generated through a neural network or productionrules from statistical learning).

While the methods and systems have been described in connection withpreferred embodiments and specific examples, it is not intended that thescope be limited to the particular embodiments set forth, as theembodiments herein are intended in all respects to be illustrativerather than restrictive.

Unless otherwise expressly stated, it is in no way intended that anymethod set forth herein be construed as requiring that its steps beperformed in a specific order. Accordingly, where a method claim doesnot actually recite an order to be followed by its steps or it is nototherwise specifically stated in the claims or descriptions that thesteps are to be limited to a specific order, it is in no way intendedthat an order be inferred, in any respect. This holds for any possiblenon-express basis for interpretation, including: matters of logic withrespect to arrangement of steps or operational flow; plain meaningderived from grammatical organization or punctuation; the number or typeof embodiments described in the specification.

It will be apparent to those skilled in the art that variousmodifications and variations can be made without departing from thescope or spirit. Other embodiments will be apparent to those skilled inthe art from consideration of the specification and practice disclosedherein. It is intended that the specification and examples be consideredas exemplary only, with a true scope and spirit being indicated by thefollowing claims.

What is claimed is:
 1. An apparatus, comprising: a frame comprising aplurality of rail sections, wherein a first rail section of theplurality of rail sections comprises one or more cavities configured toreceive a rod that extends through the first rail section; a rotatablemember coupled to a first portion of the frame comprising a second railsection of the plurality of rail sections and a third rail section ofthe plurality of rail sections, wherein the rotatable member isconfigured to couple a ball striking device to the first portion of theframe such that the ball striking device is free to rotate with respectto the rotatable member in a single direction, and wherein the rod thatextends through the first rail section is configured to keep the ballstriking device from rotating with respect to the rotatable member at afixed height based on a cavity of the one or more cavities the rodextends through; and a ball launching member coupled to a second portionof the frame comprising a fourth rail section of the plurality of railsections, wherein the ball launching member is configured to strike aball in order to cause the ball to launch off a platform.
 2. Theapparatus of claim 1, wherein the ball striking device comprises atleast one of a mallet, a golf club, a putter, a baton, a staff, or aball striking rod.
 3. The apparatus of claim 1, wherein the rotatablemember further comprises: a clamping member configured to securelycouple the ball striking device to the rotatable member; and one or morecounterweights configured to counterbalance the ball striking devicesuch that the ball striking device is balanced at a point near where theclamping member couples the ball striking device to the rotatablemember.
 4. The apparatus of claim 1, wherein the ball striking devicecomprises a first end configured to contact the ball and wherein theball launching member comprises a second end configured to contact theball.
 5. The apparatus of claim 1, wherein when the rod is removed fromthe cavity, the rotatable member is configured to rotate the ballstriking device in the single direction at a speed that is dictatedbased on a vertical height of the cavity the rod extends through priorto removal.
 6. The apparatus of claim 1, wherein the ball launchingmember comprises a mallet.
 7. The apparatus of claim 6, wherein acomputing device is coupled with a recording element configured tocapture at least one of still images or video of the ball when the ballis either launched by the ball launching member or struck by the ballstriking device.
 8. The apparatus of claim 6, wherein the ball launchingmember comprises a first end and a second end, wherein the first endcomprises a first angled end configured to launch the ball at a firstpredetermined launch angle, wherein the second end comprises a secondangled end configured to launch the ball at a second predeterminedlaunch angle.
 9. The apparatus of claim 1, wherein the ball launchingmember is configured to move one of vertically or horizontally along thefourth rail section.
 10. A method, comprising: striking a ball with aball striking apparatus, wherein the ball striking apparatus comprises:a frame comprising a plurality of rail sections, wherein a first railsection of the plurality of rail sections comprises one or more cavitiesconfigured to receive a rod that extends through the first rail section;a rotatable member coupled to a first portion of the frame comprising asecond rail section of the plurality of rail sections and a third railsection of the plurality of rail sections, wherein the rotatable memberis configured to couple a ball striking device to the first portion ofthe frame such that the ball striking device is free to rotate withrespect to the rotatable member in a single direction, and wherein therod that extends through the first rail section is configured to keepthe ball striking device from rotating with respect to the rotatablemember at a fixed height based on a cavity of the one or more cavitiesthe rod extends through; and a ball launching member coupled to a secondportion of the frame comprising a fourth rail section of the pluralityof rail sections, wherein the ball launching member is configured tostrike the ball to cause the ball to launch off a platform; determining,based on a travel path of the ball, one or more parameters that indicatea quality of a surface; and storing the determined one or moreparameters.
 11. The method of claim 10, wherein the one or moreparameters indicate at least one of a stimp of the surface, a bounce ofthe surface, a consistency of the surface, an aim of the surface, a ballstriking ability of the surface, a spin of the surface, or a firmness ofthe surface.
 12. The method of claim 10, wherein the ball strikingdevice comprises at least one of a mallet, a golf club, a putter, abaton, a staff, or a ball striking rod.
 13. The method of claim 10,wherein the rotatable member further comprises: a clamping memberconfigured to securely couple the ball striking device to the rotatablemember; and one or more counterweights configured to counterbalance theball striking device such that the ball striking device is balanced at apoint near where the clamping member couples the ball striking device tothe rotatable member.
 14. The method of claim 10, wherein the ballstriking device comprises a first end configured to contact the ball andwherein the ball launching member comprises a second end configured tocontact the ball.
 15. The method of claim 10, wherein when the rod isremoved from the cavity, the rotatable member is configured to rotatethe ball striking device in the single direction at a speed that isdictated based on a vertical height of the cavity the rod extendsthrough prior to removal.
 16. The method of claim 10, wherein the balllaunching member comprises a mallet.
 17. The method of claim 16, whereinthe ball launching member comprises a first end and a second end,wherein the first end comprises a first angled end configured to launchthe ball at a first predetermined launch angle, wherein the second endcomprises a second angled end configured to launch the ball at a secondpredetermined launch angle.
 18. The method of claim 16, wherein the oneor more parameters that indicate the quality of the surface aredetermined by a computing device, wherein the computing device iscoupled with a recording element configured to capture at least one ofstill images or video of the ball when the ball is either launched bythe ball launching member or struck by the ball striking device.
 19. Themethod of claim 18, further comprising capturing, with the recordingelement, the travel path of the ball.
 20. The method of claim 10,wherein the ball launching member is configured to move one ofvertically or horizontally along the fourth rail section.